//异步写入和读取文件
const fs = require("fs");
let arr = [
  { name: "张三", age: 20 },
  { name: "张三2", age: 20 },
  { name: "张三3", age: 20 },
];

//写入文件
//回调地狱版
// fs.writeFile("./data.json", JSON.stringify(arr), (err) => {
//   if (err) {
//     return console.log(err);
//   }
//   console.log("写入成功");
//   //读取文件
//   fs.readFile("./data.json", (err, data) => {
//     if (err) {
//       return console.log(err);
//     }
//     console.log(data.toString());
//   });
// });

//
//
//promise改造 读取和写入异步逻辑
function writeFn() {
  return new Promise((resolve, reject) => {
    fs.writeFile("./data.json", JSON.stringify(arr), (err) => {
      if (err) {
        reject(err);
        return console.log(err);
      }
      resolve("写入成功");
    });
  });
}
function readFn() {
  return new Promise((resolve, reject) => {
    fs.readFile("./data.json", (err, data) => {
      if (err) {
        reject(err);
        return console.log(err);
      }
      resolve(data.toString());
    });
  });
}
// writeFn()
//   .then((res) => {
//     console.log(res);
//     return readFn(); //读取内容
//   })
//   .then((res) => {
//     console.log(res);
//   });

(async function () {
  let res = await writeFn();
  console.log(res);
  let data = await readFn();
  console.log(data);
})();
